package com.nicolas.pattern.iterator;

import java.util.ArrayList;
import java.util.List;

/**
 * Aggregate（抽象聚合类）：它用于存储和管理元素对象，
 * 声明一个createIterator()方法用于创建一个迭代器对象，充当抽象迭代器工厂角色。
 * @author nicolas  2017年2月12日 -- 下午8:43:41
 */
public abstract class AbstractObjectList {
	protected List<Object> objects = new ArrayList<Object>();  
	  
    public AbstractObjectList(List objects) {  
        this.objects = objects;  
    }  
      
    public void addObject(Object obj) {  
        this.objects.add(obj);  
    }  
      
    public void removeObject(Object obj) {  
        this.objects.remove(obj);  
    }  
      
    public List getObjects() {  
        return this.objects;  
    }  
      
    //声明创建迭代器对象的抽象工厂方法  
    public abstract AbstractIterator createIterator();  
}
